package com.castle.fortress.admin.oa.dto;

import com.castle.fortress.admin.oa.entity.AttendanceSettingDateEntity;
import com.castle.fortress.admin.oa.entity.AttendanceSettingEntity;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * 考勤规则设置 实体类
 *
 * @author whc
 * @since 2022-11-03
 */
@Data
@ApiModel(value = "attendanceSetting对象", description = "考勤规则设置")
public class AttendanceSettingDto implements Serializable {
	private static final long serialVersionUID = 1L;
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "ID")
	@JsonProperty("id")
	private Long id;
	@ApiModelProperty(value = "考勤类型")
	@JsonProperty("type")
	private Integer type;
	@ApiModelProperty(value = "规则名称")
	@JsonProperty("name")
	private String name;
	@ApiModelProperty(value = "打卡人员/部门")
	@JsonProperty("personnel")
	private String personnel;
	@ApiModelProperty(value = "提醒时间(分钟)")
	@JsonProperty("remind")
	private Integer remind;
	@ApiModelProperty(value = "白名单人员")
	@JsonProperty("white")
	private String white;
	@ApiModelProperty(value = "考勤地点文字描述")
	@JsonProperty("address")
	private String address;
	@ApiModelProperty(value = "考勤地点(经纬度)")
	@JsonProperty("addressRange")
	private String addressRange;
	@ApiModelProperty(value = "考勤距离(米)")
	@JsonProperty("distance")
	private String distance;
	@ApiModelProperty(value = "是否需要申请")
	@JsonProperty("isApply")
	private Integer isApply;
	@ApiModelProperty(value = "是否需要拍照")
	@JsonProperty("isPhoto")
	private Integer isPhoto;
	@ApiModelProperty(value = "权重排序")
	@JsonProperty("sort")
	private Integer sort;
	@ApiModelProperty(value = "状态")
	@JsonProperty("status")
	private Integer status;
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "创建人")
	@JsonProperty("createUser")
	private Long createUser;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty(value = "创建时间")
	@JsonProperty("createTime")
	private Date createTime;
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "更新人")
	@JsonProperty("updateUser")
	private Long updateUser;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty(value = "更新时间")
	@JsonProperty("updateTime")
	private Date updateTime;
	@ApiModelProperty(value = "是否删除")
	@JsonProperty("isDeleted")
	private Integer isDeleted;
	@ApiModelProperty(value = "创建者姓名")
	@JsonProperty("createUserName")
	private String createUserName;

	/**
	 * 关联考勤时间设置
	 */
	private AttendanceSettingDateEntity attendanceSettingDateEntity;

}
